1. Field of the Invention
The present invention relates to a numerical controller, and in particular, relates to a numerical controller having a function for optimizing control software of the numerical controller in accordance with a machining program.
2. Description of the Related Art
Control software of a numerical controller interprets the machining program and creates a move command to a motor to operate a machine tool. A program that interpolates and executes programming language is generally called an interpreter.
For speeding up of the interpreter, a method has been devised that prepares in advance a plurality of interpreter sets in which modules are arranged to maximize cache efficiency of a particular instruction group, and examines instructions used in a program, and selects and executes the interpreter sets that operates the fastest among the prepared interpreter sets (for example, see JP 2002-229803 A).
In addition, for speeding up of operating software itself and reduction of amount of memory required, a method has been devised that sends user profile data to a server, and creates software in which reduction of an unnecessary module and fixation of variables have been performed based on the user profile data sent in the server, and downloads the software to a small-sized information equipment to execute the software (for example, see JP 2003-216434 A).
Further, a method has been devised, for distributing application software using a compile server, that creates software matched to a client based on client information sent from the client and distributes the software (for example, see JP 2000-122871 A).
The numerical controller has many preparatory functions (G code) and auxiliary functions (M code) to apply to various machine tools, and further, new functions have been added successively with an increase in functions required for the machine tools. By an increase in a conditional branch instruction by addition of those functions, a problem has frequently occurred that causes a decrease in processing speed, such as a pipeline stall and a cache mistake.
The above described JP 2002-229803 A discloses a technique that takes statics of commands that are selected and used so that they cover variations of the programs considered from typical programs (benchmark, network application, graphics application, and the like), and classifies the commends into a plurality of types of instruction groups taking into consideration a specification of a processor to be used, too, and then creates in advance an interpreter set to maximize the cache efficiency for each of the types. In this method, since creation of the software is required in a stage where it is not grasped what kind of functions are actually used in the program, it is not possible to address problems such as the pipeline stall caused by the conditional branch instruction. In addition, since preparation of a plurality of pieces of software is required, there is a problem that many resources are required and it is not suitable for the numerical controller having limited usable resources.
Further, in a technique devised in the above described JP 2003-216434 A, deletion of the unnecessary module and the fixation of variables are performed based on the user profile data, such as information on weather in a particular region desired by the user, and preference of users such as whether the user likes a text based interface or a graphics based interface. Although the problem such as the pipeline stall no longer occurs since there is no conditional branch instruction itself by the fixation of the variable and the like, some of the functions become unusable since processing itself is deleted. Accordingly, there is a problem that a function desired to be used cannot be immediately used on the spot when the function is changed if the numerical controller is not connected to a network. That is, when the similar method is applied to the numerical controller, it is considered that a problem occurs that operation becomes impossible when the parameter and the machining program are changed.
In addition, although conventionally there is the method devised in JP 2000-122871 A as the method for distributing optimal software to the client using the compile server, a method for optimizing control software of the numerical controller is not disclosed, and a system cannot be realized for distributing control software of an optimized numerical controller using the compile server.